Estoy tratando de ejecutar un comando " docker-compose up ". Encuentre a continuación mi archivo docker-compose. Probé con network_mode: "host" pero no funciona. Estoy en el sistema operativo Linux. Le pido que me informe si estoy cometiendo algún error.
version: '3.6' services: mongo: image: "mongo:latest" container_name: ohif-mongo ports: - "27017:27017" viewer: image: ohif/viewer:latest container_name: ohif-viewer ports: - "3030:80" network_mode: "host" # please make note of the alignment links: - mongo environment: - MONGO_URL=mongodb://mongo:27017/ohif extra_hosts: - "pacsIP:172.xx.xxx.xxx" volumes: - ./dockersupport-app.json:/app/app.jsondespués de la ejecución, aparece el siguiente error
ERROR: for 8f4c3de7e3a3_ohif-viewer Cannot create container for service viewer: conflicting options: host type networking can't be used with links. This would result in undefined behavior ERROR: for viewer Cannot create container for service viewer: conflicting options: host type networking can't be used with links. This would result in undefined behaviorNo sé por qué el mensaje de error se muestra dos veces. No estoy seguro de si esto es lo esperado.
En segundo lugar, cuando cambio la alineación de network_mode: "host" (por 1/2 espacios)
ports: - "3030:80" network_mode: "host" # please see the change in alignment now links: - mongoRecibo el siguiente mensaje de error
ERROR: yaml.parser.ParserError: while parsing a block mapping in "./docker-compose.yml", line 10, column 5 expected <block end>, but found '<block mapping start>' in "./docker-compose.yml", line 14, column 6¿Cómo puedo iniciar el contenedor con el modo network=host?
network_mode: host se utiliza para compartir el mismo espacio de red con el Host. Por ejemplo, puede querer acceder a una aplicación que se ejecuta en su PC con Linux desde el contenedor. Si desea vincular servicios entre sí, puede usar links , o depends_on , y si los servicios están en diferentes hosts, simplemente cree una red superpuesta
De documentos :
network_mode: "host" no se puede mezclar con enlaces.
Advertencia: el indicador --link es una función heredada de Docker. Eventualmente puede ser eliminado. A menos que necesite absolutamente continuar usándolo, le recomendamos que use redes definidas por el usuario para facilitar la comunicación entre dos contenedores en lugar de usar --link. Una característica que las redes definidas por el usuario no admiten y que puede hacer con --link es compartir variables ambientales entre contenedores. Sin embargo, puede usar otros mecanismos, como volúmenes, para compartir variables de entorno entre contenedores de una manera más controlada.
Simplemente elimine los enlaces. Ya no son necesarios.